#include <iostream>
#include <vector>  //vector容器的头文件
using namespace std;

/*
	vector常用方法
	    1.只要first和last表示区间范围  [first,last) 包含first，不包含last
		2.传统的C语言数组，也可以作为迭代器参数传递过去
		3.迭代器灵活使用，可以做加法、减法改变位置
	
*/

int main()
{
	int i;
	//定义vector容器对象，存放整数
	vector<int> v1;
	//int buf[3]={111,555,999};
	vector<int> v2={147,258,369};
	
	//尾插存放数据
	v1.push_back(15);
	v1.push_back(16);
	v1.push_back(17);
	v1.push_back(18);
	v1.push_back(19);
	
	//赋值--》会清空覆盖原来的元素
	//v1.assign(buf,buf+2);
	//v1.assign(v2.begin(),v2.end());  //把v2赋值给v1
	//v1.assign(15,666); //v1赋值15个666
	//for(int x:v1)
		//cout<<"目前v1里面是: "<<x<<endl;
	
	//返回末尾元素
	//cout<<v1.back()<<endl;
	//返回首元素
	//cout<<v1.front()<<endl;
	
	//清空容器
	//v1.clear();
	
	//返回指向起始元素的指针
	//int *p=v1.data();
	//cout<<"*p is: "<<*p<<endl;
	//cout<<"*(p+1) is: "<<*(p+1)<<endl;
	
	//安放数据--》235安放到你指定迭代器位置的前面
	//v1.emplace(v1.begin(),235);
	//v1.emplace(v1.begin()+2,235);
	
	//判断容器是否为空
	//if(v1.empty())
		//cout<<"容器为空"<<endl;
	
	//删除元素
	//v1.erase(v1.begin());
	//v1.erase(v1.begin()+1,v1.end());
	
	//插入新的元素-->258插入到指定迭代器位置的前面
	//v1.insert(v1.begin()+1,258);
	//v1.insert(v1.begin()+1,5,258); //5个258插入到v1.begin()+1的前面
	//v1.insert(v1.begin(),v2.begin()+1,v2.end()); //把v2.begin()+1,v2.end()插入到v1起始位置的前面
	
	//交换两个容器中的元素值
	v1.swap(v2);
	for(int x:v1)
		cout<<"目前v1里面是: "<<x<<endl;
	
	
	return 0;	
}